package com.solidumgame.locroninja.juego.ingredientes.choclo
{

	import com.solidumgame.locroninja.juego.Partida;
	import com.solidumgame.locroninja.juego.ingredientes.Ingrediente;
	import com.solidumgame.locroninja.juego.ingredientes.IngredienteNoCortado;
	
	import flash.geom.Vector3D;
	
	import libs.away3d.core.utils.Cast;
	import libs.away3d.events.MouseEvent3D;
	import libs.away3d.primitives.Cube;
	import libs.jiglib.geometry.JBox;
	import libs.jiglib.physics.RigidBody;
	import libs.jiglib.plugin.away3d.Away3dMesh;

	public class Choclo extends IngredienteNoCortado
	{
		public function Choclo()
		{
			super();
			
			//Creamos cubo y le asignamos textura de choclo
			var cubo:Cube = new Cube({width:30,height:60,depth:30});
			for(var index:int = 0; index <= 3; index++){
				
				cubo.faces[index].material = Cast.material(texture_CornSide);
			} 
			
			for( index = 8; index <= 11; index++){
				
				cubo.faces[index].material = Cast.material(texture_CornSide);
			} 
			
			for( index = 4; index <= 5; index++){
				
				cubo.faces[index].material = Cast.material(texture_CornLeaf);
			} 
			
			for( index= 6; index <= 7; index++){
				
				cubo.faces[index].material = Cast.material(texture_CornUpper);
			} 
			
			//Asignamos choclo al contenedor
			_modelo3D.addChild(cubo);
	
			//Creamos modelo de fisica
			_modeloFisica =  new JBox(new Away3dMesh(cubo),30,30,60);
			//Tipo de colision			
			_modeloFisica.collisionType = 1;
			_modeloFisica.mass = 10;
			_modeloFisica.friction = 1;
			//_modeloFisica.restitution = .8;
			
		
			
		}
		
		override protected function cortarIngrediente(e:MouseEvent3D):void{
			
			
			//Generamos mitades
			var chocloMitadArriba:ChocloMitadArriba = new ChocloMitadArriba();
			
			var posicion:Vector3D = _modeloFisica.currentState.position;
			var velocidad:Vector3D = new Vector3D(0,-30,0);
			var angulo:Vector3D = _modeloFisica.currentState.rotVelocity;

			var chocloMitadAbajo:ChocloMitadArriba = new ChocloMitadArriba();
			
			//Agregamos ingredientes
			chocloMitadArriba.agregarIngrediente(posicion,velocidad, angulo);
			
			
			posicion = new Vector3D(_modeloFisica.currentState.position.x,_modeloFisica.currentState.position.y+30,_modeloFisica.currentState.position.z);
			
			chocloMitadAbajo.agregarIngrediente(posicion,velocidad, angulo);
			
			//Remueve choclo
			removerIngrediente(-1);
			
			
		}
	}
}